.TH byobu 1 "19 June 2009" byobu "byobu"
.SH NAME
byobu \- wrapper script for seeding a user's byobu configuration and launching a text based window manager (either screen or tmux)

.SH SYNOPSIS
\fBbyobu\fP [options]

\fBbyobu\-screen\fP [screen options]

\fBbyobu\-tmux\fP [tmux options]

Options to \fBbyobu\fP are simply passed through \fBscreen\fP(1) or \fBtmux\fP(1).

.SH DESCRIPTION
\fBbyobu\fP is a script that launches a text based window manager (either \fBscreen\fP(1) or \fBtmux\fP(1)) in the byobu configuration.  This enables the display of system information and status notifications within two lines at the bottom of the screen session. It also enables multiple tabbed terminal sessions, accessible through simple keystrokes.

\fBbyobu\fP currently defaults to using \fBtmux\fP(1) (if present) as the backend, however, this can be overridden with the \fBbyobu-select-backend\fP(1) utility.

Note that BYOBU_CONFIG_DIR=\fI$XDG_CONFIG_HOME/byobu\fP if defined, and \fI$HOME/.byobu\fP otherwise.

.SH BACKGROUND COLORS
The background colors of the \fBbyobu\fP status lines can be adjusted by editing the files \fI$HOME/.byobu/color\fP (for \fBbyobu\-screen\fP) and \fI$HOME/.byobu/color.tmux\fP (for \fBbyobu\-tmux\fP).  The command \fBCtrl-Shift-F5\fP will change the background to a randomly selected color when running in \fBbyobu\-tmux\fP mode.  Simply remove those files to return to the default color configuration.

.SH STATUS NOTIFICATIONS

\fBbyobu\fP supports a number of unique and interesting status notifications across the lowest two lines in the screen.  Each status notification item is independently configurable, enabled and disabled by the configuration utility.  The guide below helps identify each status item (in alphabetical order):

\fBapport\fP \- symbol displayed if there are pending crash reports; {!} symbol displayed on the lower bar toward the left, in black on an orange background

\fBarch\fP \- system architecture; displayed on the lower bar toward the left, in the default text color on the default background color

\fBbattery\fP \- battery information; display on the lower bar toward the right; \- indicates discharging, + indicates charging, = indicates fully charged;  when charging or discharging, the current battery capacity as a percentage is displayed;  the colours green, yellow, and red are used to give further indication of the battery's charge state; you may override the detected battery by setting BATTERY=/proc/acpi/battery/BAT0 in \fI$BYOBU_CONFIG_DIR/statusrc\fP

\fBcpu_count\fP \- the number of cpu's or cores on the system; displayed in the lower bar toward the right in the default text color on the default background, followed by a trailing 'x'

\fBcpu_freq\fP \- the current frequency of the cpu in GHz; displayed in the lower bar toward the right in white text on a light blue background

\fBcpu_temp\fP \- the cpu temperature in Celsius (default) or Fahrenheit, configure TEMP=F or TEMP=C in \fI$BYOBU_CONFIG_DIR/statusrc\fP; displayed in the lower bar toward the right in yellow text on a black background; you may override the detected cpu temperature device by setting MONITORED_TEMP=/proc/acpi/whatever in \fI$BYOBU_CONFIG_DIR/statusrc\fP

\fBcustom\fP \- user defined custom scripts; must be executable programs of any kind in \fI$BYOBU_CONFIG_DIR/bin\fP; must be named N_NAME, where N is the frequency in seconds to refresh the status indicator, and NAME is the name of the script; N should not be less than 5 seconds; the script should echo a small amount of text to standard out, standard error is discarded; the indicator will be displayed in the lower panel, in default colors, unless you manually specify the colors in your script's output; BEWARE, cpu-intensive custom scripts may impact your overall system performance and could upset your system administrator!  In fact, you can easily copy and modify \fBany\fP status script usually found in \fI/usr/lib/byobu/*\fP to your local \fI$HOME/.byobu/\fP directory.
  Example: \fI$BYOBU_CONFIG_DIR/bin/1000_uname\fP
    #!/bin/sh
    printf "\\005{= bw}%s\\005{\-}" "$(uname \-r)"


\fBdate\fP \- the system date in YYYY-MM-DD format, or you can set this to any valid \fBstrftime\fP(3) you like in \fI$BYOBU_CONFIG_DIR/datetime\fP; displayed in the lower on the far right in the default text color on the default background

\fBdisk\fP \- total disk space available and total used on / directory; displayed in the lower bar on the far right in white text on a light purple background; override the default directory by specifying an alternate mount point with MONITORED_DISK=/wherever in \fI$BYOBU_CONFIG_DIR/statusrc\fP

\fBdisk_io\fP \- instantaneous read/write througput in kB/s or MB/s over the last 3 seconds; displayed in the lower bar toward the right in white text on a light purple background with a leading '<' sign indicating 'read speed' and '>' sign indicating 'write speed'; override the default monitored disk by specifying an alternate device with MONITORED_DISK=/dev/sdb, and override the default DISK_IO_THRESHOLD=50 (kB/s) in \fI$BYOBU_CONFIG_DIR/statusrc\fP

\fBdistro\fP \- OS/distribution name of the release running on the current system as reported by \fBlsb_release(1)\fP or \fI/etc/issue\fP; displayed in the lower bar in bold black text toward the left on a grey background; you may override the detected release with DISTRO=Whatever in \fI$BYOBU_CONFIG_DIR/statusrc\fP

\fBentropy\fP \- a count of the system's current entropy in bytes; displayed in the lower bar toward the right in yellow text on a dark grey background; there is a leading 'e' to indicate 'entropy'

\fBraid\fP \- note very prominently if there is a RAID failure detected, in red blinking text on a white background; the term 'RAID' notes that there is something wrong with the RAID, and if there is a rebuild/resync in progress, the percent complete is also shown

\fBfan_speed\fP \- cpu or system fan speed as reported by lm-sensors; displayed in the lower bar toward the right in black text on a grey background; there is a trailing 'rpm' for units; you may override the detected fan by setting FAN=/sys/path/to/your/fan1_input in \fI$BYOBU_CONFIG_DIR/statusrc\fP

\fBhostname\fP \- the hostname of the system; displayed in the upper bar on the far right in bold black text on a grey background; there is a leading '@' symbol if the username status is also enabled

\fBip_address\fP \- the IPv4 address of the system in dotted decimal form; displayed in the upper bar on the far right in bold black text on a grey background;  you can override and display your IPv6 address by setting 'IPV6=1', and you can show your external ip address by setting 'IP_EXTERNAL=1' in \fI$BYOBU_CONFIG_DIR/statusrc\fP

\fBip_address4\fP \- the IPv4 address of the system in dotted decimal form; displayed in the upper bar on the far right in bold black text on a grey background;  you can show your external ip address by setting 'IP_EXTERNAL=1' in \fI$BYOBU_CONFIG_DIR/statusrc\fP

\fBip_address6\fP \- the IPv6 address of the system; displayed in the upper bar on the far right in bold black text on a grey background;  you can show your external ip address by setting 'IP_EXTERNAL=1' in \fI$BYOBU_CONFIG_DIR/statusrc\fP

\fBload_average\fP \- the system load average over the last 1 minute; displayed in the lower bar toward the right in black text on a yellow background

\fBlogo\fP \- an approximation of the current operating system's logo; displayed in the lower bar on the far left; you may customize this logo by setting a chosen logo with LOGO=:-D in \fI$BYOBU_CONFIG_DIR/statusrc\fP

\fBmail\fP \- system mail for the current user; the letter '[M]' is displayed in the lower bar toward the left in black text on a grey background

\fBmemory\fP \- total memory available and used percentage in the system; displayed in the lower bar toward the right in white text on a green background

\fBmenu\fP \- a simple indicator directing new users to use the F9 keybinding to access the byobu menu

\fBnetwork\fP \- instantaneous upload/download bandwidth in [GMk]bps over the last 3 seconds; nothing is displayed if traffic is 0; displayed in the lower bar toward the left in white text on a purple background with a leading '^' sign indicating 'up' and 'v' sign indicating 'down'; override the default interface by specifying an alternate interface with MONITORED_NETWORK=eth1, and override the default units (bits) with NETWORK_UNITS=bytes, and override the default NETWORK_THRESHOLD=20 (kbps) in \fI$BYOBU_CONFIG_DIR/statusrc\fP

\fBnotify_osd\fP \- Send on-screen notification messages to screen's notification buffer

\fBpackages\fP \- total number of packages installed on the system; displayed in the lower bar in yellow text on a white background inside of square brackets, '[xxx]'

\fBprocesses\fP \- total number of processes running on the system; displayed in the lower bar in white text on a dark yellow background with a trailing '&' indicating 'background processes'

\fBreboot_required\fP \- symbol present if a reboot is required following a system update; displayed in the lower bar white text on a blue background by the symbol '(R)'; additionally, reboot_required will print '<F5>' in white text on a blue background, if Byobu requires you to reload your profile to affect some changes; it will also detect if your system is currently in \fBpowernap\fP(8) state and if so print '.zZ'; if your system is currently performing an \fBunattended-upgrade\fP(1) you will see a white warning sign on a red background.

\fBrelease\fP \- OS/distribution name of the release running on the current system as reported by \fBlsb_release(1)\fP or \fI/etc/issue\fP; displayed in the lower bar in bold black text toward the left on a grey background; you may override the detected release with RELEASE=Whatever in \fI$BYOBU_CONFIG_DIR/statusrc\fP; you may also abbreviate the release string to N characters by setting RELEASE_ABBREVIATED=N in \fI$BYOBU_CONFIG_DIR/statusrc\fP

\fBservices\fP \- users can configure a list of services to monitor, define the SERVICES variable in \fI$BYOBU_CONFIG_DIR/statusrc\fP, a whitespace separated of services, each service should include the init name of the service, then a pipe, and then an abbreviated name or symbol to display when running (e.g. SERVICES="ssh|ssh apache2|http"); displayed in the lower bar toward the center in cyan on a white background

\fBsession\fP \- byobu session name (only supported in \fBbyobu-tmux\fP(1)); displayed in the lower bar on the left in underlined black text on a white background

\fBswap\fP \- total swap space and total used as a percentage of the total available; displayed in the lower bar toward the right in black text on a light green background with a trailing '%' sign

\fBtime\fP \- the system time in HH:MM:SS format (by default), or you can set this to any valid \fBstrftime\fP(3) you like in \fI$BYOBU_CONFIG_DIR/datetime\fP; displayed in the lower bar on the far right in the default text and default background colors

\fBtime_binary\fP \- only for the hard core geek, the local system time in binary; requires UTF-8 support in a VERY recent version of GNU Screen; displayed in the lower bar on the far right in the default text and background colors

\fBtime_utc\fP \- the UTC system time in HH:MM format; displayed in the lower bar on the far right in dark text on a light background

\fBupdates_available\fP \- the number of updates available on the system; displayed in the lower bar toward the right in white text on a red background with a trailing '!' sign; if any updates are marked 'security updates', then there will be a total of two trailing exclamation points, '!!'

\fBuptime\fP \- the total system uptime since last boot; displayed in the lower bar toward the right in blue text on a grey background

\fBusers\fP \- the number of remote users logged into the system via sshd, empty if 0 users; displayed in the lower bar toward the right in red text on a grey background with a trailing '#' sign; set USERS_DISTINCT=1 to instead count the number of distinct users logged into the system (rather than open ssh sessions)

\fBwhoami\fP \- the name of the user who owns the screen session; displayed in the upper bar toward the far right in bold black text on a grey background

\fBwifi_quality\fP \- the connection rate and signal quality of the wifi connection; displayed in the lower bar toward the right in black text on a cyan background; the connection rate is in 'Mb/s' and the signal quality is as a percentage with a trailing '%'; override the default interface by specifying an alternate interface with MONITORED_NETWORK=wlan0 in \fI$BYOBU_CONFIG_DIR/statusrc\fP

.SH SESSIONS

Byobu name screen sessions "byobu", if unspecified.  To hide sessions from \fBbyobu-select-session\fP(1), prepend a "." to the beginning of the session name, like:

 byobu \-S .hidden

.SH WINDOWS

Each open window in the screen session is displayed in the upper bar toward the far left.  These are numbered, and include indicators as to activity in the window (see "activity" in \fBscreen\fP(1) and \fBtmux\fP(1) for symbol definitions).  The current active window is highlighted by inverting the background/text from the rest of the window bar.

Users can create a list of windows to launch at startup in \fI$BYOBU_CONFIG_DIR/windows\fP and \fI$BYOBU_CONFIG_DIR/windows.tmux\fP.  This file is the same syntax as \fI~/.screenrc\fP and \fI~/.tmuxrc\fP, each line specifying a window, as described in \fBscreen\fP(1) or \fBtmux\fP(1).

User can also launch Byobu with unique window sets.  Users can store these as \fI$BYOBU_CONFIG_DIR/windows.[NAME]\fP and \fI$BYOBU_CONFIG_DIR/windows.tmux.[NAME]\fP, and launch Byobu with the environment variable \fBBYOBU_WINDOWS\fP=NAME.

For example:
  $ cat $BYOBU_CONFIG_DIR/windows.ssh_sessions
  screen \-t localhost bash
  screen \-t aussie ssh root@aussie
  screen \-t beagle ssh root@beagle
  screen \-t collie ssh root@collie

Then:
  $ BYOBU_WINDOWS=ssh_sessions byobu

For example:
  $ cat $BYOBU_CONFIG_DIR/windows.tmux.split4
  new-session 'bash' ;
  new-window -n term1 ;
  new-window -n term2 ;
  new-window -n ssh ssh 10.9.8.7 ;
  split-window ;
  split-window ;
  split-window ;
  select-layout tiled ;
  select-pane -t 0

Then:
  $ BYOBU_WINDOWS=split4 byobu

.SH UNITS OF MEASURE
byobu uses binary for capacity measurements of KB, MB, GB, and TB.  This means multiples of 1024 rather than multiples of 1000, in accordance with JEDEC Standard 100B.01 for memory capacity measurements.  See:
 * http://en.wikipedia.org/wiki/JEDEC_memory_standards

byobu uses decimal for measurements of network data transfer, meaning multiple of 1000, rather than 1024.  See:
 * http://en.wikipedia.org/wiki/Data_rate_units

.SH KEYBINDINGS

byobu keybindings can be user defined in /usr/share/byobu/keybindings/ (or within .screenrc if byobu-export was used). The common key bindings are:

\fBF2\fP \- Create a new window

\fBF3\fP \- Move to previous window

\fBF4\fP \- Move to next window

\fBF5\fP \- Reload profile

\fBF6\fP \- Detach from this session

\fBF7\fP \- Enter copy/scrollback mode

\fBF8\fP \- Re-title a window

\fBF9\fP \- Configuration Menu

\fBF12\fP \-  Lock this terminal

\fBshift-F2\fP \- Split the screen horizontally

\fBctrl-F2\fP \- Split the screen vertically

\fBshift-F3\fP \- Shift the focus to the previous split region

\fBshift-F4\fP \- Shift the focus to the next split region

\fBshift-F5\fP \- Join all splits

\fBctrl-F6\fP \- Remove this split

\fBctrl-F5\fP \- Reconnect GPG and SSH sockets

\fBshift-F6\fP \- Detach, but do not logout

\fBalt-pgup\fP \- Enter scrollback mode

\fBalt-pgdn\fP \- Enter scrollback mode

\fBCtrl-a $\fP \- show detailed status

\fBCtrl-a R\fP \- Reload profile

\fBCtrl-a !\fP \- Toggle key bindings on and off

\fBCtrl-a k\fP \- Kill the current window

\fBCtrl-a ~\fP \- Save the current window's scrollback buffer

.SH "SCROLLBACK, COPY, PASTE MODES"

Each window in Byobu has up to 10,000 lines of scrollback history, which you can enter and navigate using the \fBalt-pgup\fP and \fBalt-pgdn\fP keys.  Exit this scrollback mode by hitting \fBenter\fP.  You can also easily copy and paste text from scrollback mode.  To do so, enter scrollback using \fBalt-pgup\fP or \fBalt-pgdn\fP, press the \fBspacebar\fP to start highlighting text, use \fBup/down/left/right/pgup/pgdn\fP to select the text, and press \fBenter\fP to copy the text.  You can then paste the text using \fBalt-insert\fP or \fBctrl-a-]\fP.

.SH "BUGS"

For Byobu colors to work properly, older versions of GNU Screen require a 1-line patch to adjust MAX_WINMSG_REND in screen.c.  The change is in GNU Screen's upstream source control system as of 2010-01-26, but GNU Screen has not released a new upstream version in several years.  You can disable colors entirely by setting MONOCHROME=1 in \fI$BYOBU_CONFIG_DIR/statusrc\fP.  For more information, see:
 * http://savannah.gnu.org/bugs/?22146

PuTTY users have reported that the F2, F3, and F4 shortcut keys are not working properly.  PuTTY sends the same escape sequences as the linux console for F1-F4 by default.  You can fix this problem in the PuTTY config, Terminal -> Keyboard -> Function keys: Xterm R6.  See: \fIhttp://www.mail-archive.com/screen-users@gnu.org/msg01525.html\fP

PuTTY users should configure enable UTF-8 characters in order to fix status refresh issues.  You can fix this problem in the PuTTY configuration, Window -> Translation: select UTF-8.

PuTTY users should avoid resizing their window to one character tall, as this can sometimes crash \fBbyobu-screen\fP.

Apple Mac OSX terminal users have reported 'flashing text'.  You can fix this in the advanced settings of the terminal application, with 'Declare Terminal As: xterm-color'.

Apple Mac keyboard users may need to specify a vt100 terminal by adding this to your OSX profile, in order to get Byobu's function keys and colors to work:
  alias ssh='TERM=vt100 ssh'

Users of a non-UTF-8 locale (such as cs_CZ charset ISO-8859-2), may need to add "defutf8 off" to \fI~/.screenrc\fP, if some characters are rendering as "?".

Users who customize their PS1 prompt need to put this setting in \fI~/.bashrc\fP, rather than \fI~/.profile\fP, in order for it to work correctly with Byobu.

If you run \fBbyobu\fP(1) under \fBsudo\fP(8), you \fBmust\fP use the \-H option, such that the user's $HOME directory environment variable is set properly.  Otherwise, \fBbyobu\fP(1) will create a bunch of directories in the $SUDO_USER's $HOME, but will be owned by root.  To prevent this from happening, \fBbyobu\fP(1) will simply refuse to run if $USER does not own $HOME.

Byobu requires a suitable \fBulimit\fP(3) values to run.  If you get an error at startup saying, 'pipe: too many open files', then check your ulimit \-a values, as your "open files" or "max user processes" are too low.  In this case, you will probably need to run simple \fBscreen\fP(1)

.SH SEE ALSO
.PD 0
.TP
\fBscreen\fP(1), \fBbyobu-config\fP(1), \fBbyobu-export\fP(1), \fBbyobu-status\fP(1), \fBbyobu-status-detail\fB(1), \fBbyobu-enable\fB(1), \fBbyobu-launch\fB(1), \fBbyobu-select-backend\fP(1), \fBtmux\fP(1)
.TP
\fIhttp://byobu.org\fP
.PD

.SH AUTHOR
This manpage and the utility were written by Dustin Kirkland <kirkland@byobu.org> for Ubuntu systems (but may be used by others).  Permission is granted to copy, distribute and/or modify this document and the utility under the terms of the GNU General Public License, Version 3 published by the Free Software Foundation.

The complete text of the GNU General Public License can be found in \fI/usr/share/common-licenses/GPL\fP on Debian/Ubuntu systems, or in \fI/usr/share/doc/fedora-release-*/GPL\fP on Fedora systems, or on the web at \fIhttp://www.gnu.org/licenses/gpl.txt\fP.
